package com.lxyk.service.user;

import com.lxyk.domain.Classes;
import com.lxyk.domain.PageBean;
import com.lxyk.vo.StudentNumVo;
import org.apache.ibatis.annotations.Update;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

public interface ClassesService {

    //查询所有班级
    public PageBean<Classes> findAll(Integer page,Integer size);

    //查询所有用户以及班级对应的用户
    Map<String, Object> toAddTeacherPage(Integer id);

    //修改班级的用户(先清空, 再往用户角色表中插入数据)
    void addUserToClasses(Integer[] ids, Integer cid);

    //根据id查询
    Classes findById(Integer id);

    //更新班级信息
    boolean update(Classes classes);

    //删除班级
    boolean delete(Integer id);

    //添加班级信息
    boolean save(Classes classes) throws ParseException;

    //根据用户id查询对应班级
    public List<Classes> findByUser(Integer uid);

    //查询各个在读班级本周报名人数与退费人数
    public List<StudentNumVo> findJoinOutNum() throws ParseException;

    //查询所有在读班级
    public List<Classes> findReadClass();

    //学员进班,修改总人数与有效人数
    public void joinClass(Integer cid);

    //学员转班,修改总人数与有效人数
    public void transferClass(Integer oldCid,Integer targetCid);

    //学员退费,修改总人数与有效人数
    public void outClass(Integer cid);

    //休学,修改有效人数
    public void suspension(Integer cid);

    //复学,修改有效人数
    public void goBackClass(Integer cid);

    //结课
    public void endClasses(Integer cid);
}
